home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Tools - Objects / Macintosh Programmer’s Workshop / MPW 3.1 / MPW / Interfaces / CIncludes / TextEdit.h < prev    next >
Text File  |  1990-12-13  |  8KB  |  266 lines

  1. /************************************************************
  2.  
  3. Created: Tuesday, September 12, 1989 at 5:51 PM
  4.     TextEdit.h
  5.     C Interface to the Macintosh Libraries
  6.  
  7.  
  8.     Copyright Apple Computer, Inc.    1985-1989
  9.     All rights reserved
  10.  
  11. ************************************************************/
  12.  
  13.  
  14. #ifndef __TEXTEDIT__
  15. #define __TEXTEDIT__
  16.  
  17. #ifndef __QUICKDRAW__
  18. #include <Quickdraw.h>
  19. #endif
  20.  
  21. #define teJustLeft 0
  22. #define teJustCenter 1
  23. #define teJustRight -1
  24. #define teForceLeft -2
  25. #define doFont 1                                        /* set font (family) number*/
  26. #define doFace 2                                        /*set character style*/
  27. #define doSize 4                                        /*set type size*/
  28. #define doColor 8                                        /*set color*/
  29. #define doAll 15                                        /*set all attributes*/
  30. #define addSize 16                                        /*adjust type size*/
  31. #define doToggle 32                                     /*toggle mode for TESetStyle & TEContinuousStyle*/
  32. #define intEOLHook 0                                    /*TEIntHook value*/
  33. #define intDrawHook 1                                    /*TEIntHook value*/
  34. #define intWidthHook 2                                    /*TEIntHook value*/
  35. #define intHitTestHook 3                                /*TEIntHook value*/
  36.  
  37. typedef char Chars[32001];
  38. typedef Chars *CharsPtr,**CharsHandle;
  39.  
  40. typedef short TEIntHook;
  41.  
  42. typedef pascal Boolean (*WordBreakProcPtr)(Ptr text, short charPos);
  43. typedef pascal Boolean (*ClikLoopProcPtr)(void);
  44.  
  45. struct TERec {
  46.     Rect destRect;
  47.     Rect viewRect;
  48.     Rect selRect;
  49.     short lineHeight;
  50.     short fontAscent;
  51.     Point selPoint;
  52.     short selStart;
  53.     short selEnd;
  54.     short active;
  55.     WordBreakProcPtr wordBreak;
  56.     ClikLoopProcPtr clikLoop;
  57.     long clickTime;
  58.     short clickLoc;
  59.     long caretTime;
  60.     short caretState;
  61.     short just;
  62.     short teLength;
  63.     Handle hText;
  64.     short recalBack;
  65.     short recalLines;
  66.     short clikStuff;
  67.     short crOnly;
  68.     short txFont;
  69.     Style txFace;                                        /*txFace is unpacked byte*/
  70.     char filler;
  71.     short txMode;
  72.     short txSize;
  73.     GrafPtr inPort;
  74.     ProcPtr highHook;
  75.     ProcPtr caretHook;
  76.     short nLines;
  77.     short lineStarts[16001];
  78. };
  79.  
  80. typedef struct TERec TERec;
  81. typedef TERec *TEPtr, **TEHandle;
  82.  
  83. struct StyleRun {
  84.     short startChar;                                    /*starting character position*/
  85.     short styleIndex;                                    /*index in style table*/
  86. };
  87.  
  88. typedef struct StyleRun StyleRun;
  89. struct STElement {
  90.     short stCount;                                        /*number of runs in this style*/
  91.     short stHeight;                                     /*line height*/
  92.     short stAscent;                                     /*font ascent*/
  93.     short stFont;                                        /*font (family) number*/
  94.     Style stFace;                                        /*character Style*/
  95.     char filler;                                        /*stFace is unpacked byte*/
  96.     short stSize;                                        /*size in points*/
  97.     RGBColor stColor;                                    /*absolute (RGB) color*/
  98. };
  99.  
  100. typedef struct STElement STElement;
  101. typedef STElement TEStyleTable[1777], *STPtr, **STHandle;
  102.  
  103. struct LHElement {
  104.     short lhHeight;                                     /*maximum height in line*/
  105.     short lhAscent;                                     /*maximum ascent in line*/
  106. };
  107.  
  108. typedef struct LHElement LHElement;
  109. typedef LHElement LHTable[8001], *LHPtr, **LHHandle;    /* ARRAY [0..8000] OF LHElement */
  110.  
  111. struct ScrpSTElement {
  112.     long scrpStartChar;                                 /*starting character position*/
  113.     short scrpHeight;                                    /*starting character position*/
  114.     short scrpAscent;
  115.     short scrpFont;
  116.     Style scrpFace;                                     /*unpacked byte*/
  117.     char filler;                                        /*scrpFace is unpacked byte*/
  118.     short scrpSize;
  119.     RGBColor scrpColor;
  120. };
  121.  
  122. typedef struct ScrpSTElement ScrpSTElement;
  123. typedef ScrpSTElement ScrpSTTable[1601];                /* ARRAY [0..1600] OF ScrpSTElement */
  124.  
  125. struct StScrpRec {
  126.     short scrpNStyles;                                    /*number of styles in scrap*/
  127.     ScrpSTTable scrpStyleTab;                            /*table of styles for scrap*/
  128. };
  129.  
  130. typedef struct StScrpRec StScrpRec;
  131. typedef StScrpRec *StScrpPtr, **StScrpHandle;
  132.  
  133. struct NullStRec {
  134.     long teReserved;                                    /*reserved for future expansion*/
  135.     StScrpHandle nullScrap;                             /*handle to scrap style table*/
  136. };
  137.  
  138. typedef struct NullStRec NullStRec;
  139. typedef NullStRec *NullStPtr, **NullStHandle;
  140.  
  141. struct TEStyleRec {
  142.     short nRuns;                                        /*number of style runs*/
  143.     short nStyles;                                        /*size of style table*/
  144.     STHandle styleTab;                                    /*handle to style table*/
  145.     LHHandle lhTab;                                     /*handle to line-height table*/
  146.     long teRefCon;                                        /*reserved for application use*/
  147.     NullStHandle nullStyle;                             /*Handle to style set at null selection*/
  148.     StyleRun runs[8001];                                /*ARRAY [0..8000] OF StyleRun*/
  149. };
  150.  
  151. typedef struct TEStyleRec TEStyleRec;
  152. typedef TEStyleRec *TEStylePtr, **TEStyleHandle;
  153.  
  154. struct TextStyle {
  155.     short tsFont;                                        /*font (family) number*/
  156.     Style tsFace;                                        /*character Style*/
  157.     char filler;                                        /*tsFace is unpacked byte*/
  158.     short tsSize;                                        /*size in point*/
  159.     RGBColor tsColor;                                    /*absolute (RGB) color*/
  160. };
  161.  
  162. typedef struct TextStyle TextStyle;
  163. typedef TextStyle *TextStylePtr, **TextStyleHandle;
  164.  
  165. #ifdef __cplusplus
  166. extern "C" {
  167. #endif
  168. pascal void TEInit(void)
  169.     = 0xA9CC;
  170. pascal TEHandle TENew(const Rect *destRect,const Rect *viewRect)
  171.     = 0xA9D2;
  172. pascal void TEDispose(TEHandle hTE)
  173.     = 0xA9CD;
  174. pascal void TESetText(Ptr text,long length,TEHandle hTE)
  175.     = 0xA9CF;
  176. pascal CharsHandle TEGetText(TEHandle hTE)
  177.     = 0xA9CB;
  178. pascal void TEIdle(TEHandle hTE)
  179.     = 0xA9DA;
  180. pascal void TESetSelect(long selStart,long selEnd,TEHandle hTE)
  181.     = 0xA9D1;
  182. pascal void TEActivate(TEHandle hTE)
  183.     = 0xA9D8;
  184. pascal void TEDeactivate(TEHandle hTE)
  185.     = 0xA9D9;
  186. pascal void TEKey(short key,TEHandle hTE)
  187.     = 0xA9DC;
  188. pascal void TECut(TEHandle hTE)
  189.     = 0xA9D6;
  190. pascal void TECopy(TEHandle hTE)
  191.     = 0xA9D5;
  192. pascal void TEPaste(TEHandle hTE)
  193.     = 0xA9DB;
  194. pascal void TEDelete(TEHandle hTE)
  195.     = 0xA9D7;
  196. pascal void TEInsert(Ptr text,long length,TEHandle hTE)
  197.     = 0xA9DE;
  198. pascal void TESetJust(short just,TEHandle hTE)
  199.     = 0xA9DF;
  200. pascal void TEUpdate(const Rect *rUpdate,TEHandle hTE)
  201.     = 0xA9D3;
  202. pascal void TextBox(Ptr text,long length,const Rect *box,short just)
  203.     = 0xA9CE;
  204. pascal void TEScroll(short dh,short dv,TEHandle hTE)
  205.     = 0xA9DD;
  206. pascal void TESelView(TEHandle hTE)
  207.     = 0xA811;
  208. pascal void TEPinScroll(short dh,short dv,TEHandle hTE)
  209.     = 0xA812;
  210. pascal void TEAutoView(Boolean fAuto,TEHandle hTE)
  211.     = 0xA813;
  212. pascal Handle TEScrapHandle(void)
  213.     = {0x2EB8,0x0AB4};
  214. pascal void TECalText(TEHandle hTE)
  215.     = 0xA9D0;
  216. pascal short TEGetOffset(Point pt,TEHandle hTE)
  217.     = 0xA83C;
  218. pascal struct Point TEGetPoint(short offset,TEHandle hTE)
  219.     = {0x3F3C,0x0008,0xA83D};
  220. pascal void TEClick(Point pt,Boolean fExtend,TEHandle h)
  221.     = 0xA9D4;
  222. pascal TEHandle TEStylNew(const Rect *destRect,const Rect *viewRect)
  223.     = 0xA83E;
  224. pascal void SetStylHandle(TEStyleHandle theHandle,TEHandle hTE)
  225.     = {0x3F3C,0x0005,0xA83D};
  226. pascal TEStyleHandle GetStylHandle(TEHandle hTE)
  227.     = {0x3F3C,0x0004,0xA83D};
  228. pascal void TEGetStyle(short offset,TextStyle *theStyle,short *lineHeight,
  229.     short *fontAscent,TEHandle hTE)
  230.     = {0x3F3C,0x0003,0xA83D};
  231. pascal void TEStylPaste(TEHandle hTE)
  232.     = {0x3F3C,0x0000,0xA83D};
  233. pascal void TESetStyle(short mode,const TextStyle *newStyle,Boolean redraw,
  234.     TEHandle hTE)
  235.     = {0x3F3C,0x0001,0xA83D};
  236. pascal void TEReplaceStyle(short mode,const TextStyle *oldStyle,const TextStyle *newStyle,
  237.     Boolean redraw,TEHandle hTE)
  238.     = {0x3F3C,0x0002,0xA83D};
  239. pascal StScrpHandle GetStylScrap(TEHandle hTE)
  240.     = {0x3F3C,0x0006,0xA83D};
  241. pascal void TEStylInsert(Ptr text,long length,StScrpHandle hST,TEHandle hTE)
  242.     = {0x3F3C,0x0007,0xA83D};
  243. pascal long TEGetHeight(long endLine,long startLine,TEHandle hTE)
  244.     = {0x3F3C,0x0009,0xA83D};
  245. pascal Boolean TEContinuousStyle(short *mode,TextStyle *aStyle,TEHandle hTE)
  246.     = {0x3F3C,0x000A,0xA83D};
  247. pascal void SetStylScrap(long rangeStart,long rangeEnd,StScrpHandle newStyles,
  248.     Boolean redraw,TEHandle hTE)
  249.     = {0x3F3C,0x000B,0xA83D};
  250. pascal void TECustomHook(TEIntHook which,ProcPtr *addr,TEHandle hTE)
  251.     = {0x3F3C,0x000C,0xA83D};
  252. pascal long TENumStyles(long rangeStart,long rangeEnd,TEHandle hTE)
  253.     = {0x3F3C,0x000D,0xA83D};
  254. pascal long TEGetScrapLen(void);
  255. pascal void TESetScrapLen(long length); 
  256. pascal OSErr TEFromScrap(void); 
  257. pascal OSErr TEToScrap(void);
  258. pascal void SetClikLoop(ClikLoopProcPtr clikProc,TEHandle hTE); 
  259. pascal void SetWordBreak(WordBreakProcPtr wBrkProc,TEHandle hTE);
  260. void teclick(Point *pt,Boolean fExtend,TEHandle h); 
  261. #ifdef __cplusplus
  262. }
  263. #endif
  264.  
  265. #endif
  266.